1
Melampaui Portabilitas Sumber
AI024Lesson 3
00:00

Dalam ekosistem ROCm, portabilitas sumber sering disalahartikan sebagai kesetaraan kinerja. Meskipun kode HIP yang portabel memungkinkan satu kode dasar untuk dijalankan di berbagai vendor perangkat keras (AMD dan NVIDIA), mencapai throughput maksimal membutuhkan pengakuan bahwa portabilitas sumber dan kinerja biner adalah hal yang terpisah.

1. Paradoks Portabilitas

Sebuah program HIP bersifat portabel pada tingkat sumber, artinya sintaks dan logika tetap konstan. Namun, Arsitektur Instruksi (ISA) yang mendasari sangat berbeda antar generasi (misalnya, AMD GCN vs. RDNA). Pembuatan yang "naif" yang mengabaikan perbedaan ini dapat menyebabkan penurunan kinerja yang signifikan.

2. Sensitivitas Arsitektur

Untuk mendapatkan kinerja maksimum, biner yang baik tetap sensitif terhadap arsitektur. Compiler harus mengoptimalkan alokasi register, penjadwalan wavefront/warp, serta pola akses memori secara khusus untuk unit komputasi GPU tujuan. Gagal menentukan arsitektur tujuan menghambat penggunaan perangkat keras khusus seperti unit Matrix Fused Multiply-Add (MFMA).

Sumber HIP TerpaduDioptimalkan AMD (amdgcn)Dioptimalkan NVIDIA (nvptx)Kesenjangan Optimalisasi

Kompatibilitas fungsional tidak berarti kesetaraan kinerja pada tingkat biner.

3. Kewajiban Sistem Build

Mengembangkan di luar "Hello World" membutuhkan sistem pipeline build yang canggih (seperti CMake) yang mengelola pembuatan jalur biner yang dioptimalkan secara ganda dari satu pohon kode sumber, memastikan instruksi yang tepat sampai ke perangkat keras yang tepat.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>